package nodos;

import javax.swing.tree.DefaultMutableTreeNode;

import mundo.SimboloLexico;


public class NodoSentencia extends Nodo {

	private Nodo declaracionVariable;
	private Nodo llamadoMetodo;
	private Nodo retorno;
	private Nodo impresion;
	private SimboloLexico lee;
	private Nodo nuevo;
	private Nodo asignacion;

	public NodoSentencia(Nodo declaracionVariable, Nodo llamadoMetodo, Nodo retorno, Nodo impresion, SimboloLexico lee, Nodo nuevo, Nodo asignacion) {
		this.declaracionVariable = declaracionVariable;
		this.llamadoMetodo = llamadoMetodo;
		this.retorno = retorno;
		this.impresion = impresion;
		this.lee = lee;
		this.nuevo = nuevo;
		this.asignacion=asignacion;
	}

	@Override
	public DefaultMutableTreeNode getSubArbolVisual() {
		DefaultMutableTreeNode raiz=null;
		if (declaracionVariable!=null)
			raiz=declaracionVariable.getSubArbolVisual();
		if (llamadoMetodo!=null)
			raiz=llamadoMetodo.getSubArbolVisual();
		if (retorno!=null){
			raiz=retorno.getSubArbolVisual();
		}
		if (impresion!=null){
			raiz=new DefaultMutableTreeNode("Impresion");
			raiz.add(impresion.getSubArbolVisual());
		}
		if (lee!=null)
			raiz=new DefaultMutableTreeNode("Lectura de dato");
		if (nuevo!=null)
			raiz=nuevo.getSubArbolVisual();
		if (asignacion!=null)
			raiz=asignacion.getSubArbolVisual();
		return raiz;
	}

	@Override
	public String traducir(int profundidad) {
		String codJava="";
		if (declaracionVariable!=null)
			codJava+=declaracionVariable.traducir(profundidad);
		if (llamadoMetodo!=null)
			codJava+=llamadoMetodo.traducir(profundidad);
		if (retorno!=null)
			codJava+=retorno.traducir(profundidad);
		if (impresion!=null)
			codJava+="System.out.println("+impresion.traducir(profundidad)+")";
		if (lee!=null)
			codJava+="javax.swing.JOptionPane.showInputDialog(\"Lectura de dato\")";
		if (nuevo!=null)
			codJava+="new "+nuevo.traducir(profundidad);
		if (asignacion!=null)
			codJava+=asignacion.traducir(profundidad);
		return codJava;
	}
}
